스토리지 클래스와 볼륨 스냅샷
스토리지 클래스와 볼륨 스냅샷은 쿠버네티스에서 지속적인 스토리지를 관리하고 데이터 보호를 위한 메커니즘을 제공합니다.
스토리지 클래스(StorageClass)
스토리지 클래스는 관리자가 다양한 스토리지 옵션을 정의하고, 사용자가 필요에 따라 적절한 스토리지를 동적으로 프로비저닝할 수 있게 해주는 리소스입니다.
볼륨 스냅샷(VolumeSnapshot)
볼륨 스냅샷은 특정 시점의 PersistentVolume 데이터 상태를 캡처하여 백업, 복제, 복원 등에 활용할 수 있는 기능입니다.
클라우드 네트워크 개념과 비교
- 스토리지 티어: AWS EBS, Azure Disk, GCP Persistent Disk와 같은 클라우드 스토리지 서비스와 유사한 개념
- 스냅샷 기능: 클라우드 제공업체의 볼륨 스냅샷 기능과 동일한 목적 제공
실습 예시
StorageClass 정의
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp3
iopsPerGB: "10"
fsType: ext4
encrypted: "true"
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
동적 PVC 생성
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: fast-ssd
resources:
requests:
storage: 100Gi
VolumeSnapshotClass 정의
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: daily-snapshot
driver: ebs.csi.aws.com
deletionPolicy: Retain
parameters:
csi.storage.k8s.io/snapshotter-secret-name: snapshotter-secret
csi.storage.k8s.io/snapshotter-secret-namespace: kube-system
VolumeSnapshot 생성
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: database-snapshot-1
spec:
volumeSnapshotClassName: daily-snapshot
source:
persistentVolumeClaimName: database-data
스냅샷에서 PVC 복원
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-data-restore
spec:
accessModes:
- ReadWriteOnce
storageClassName: fast-ssd
resources:
requests:
storage: 100Gi
dataSource:
name: database-snapshot-1
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
일반적인 사용 사례
- 다양한 스토리지 티어: 성능과 비용 요구 사항에 따른 다양한 스토리지 옵션 제공
- 백업 자동화: 정기적인 볼륨 스냅샷을 통한 데이터 보호
- 환경 복제: 개발/테스트 환경에 프로덕션 데이터 복제
- 재해 복구: 스냅샷을 사용한 데이터 복구 전략
- 데이터 마이그레이션: 다른 클러스터나 스토리지 시스템으로 데이터 이동
스토리지 관리 모범 사례
- 적절한 reclaim 정책 설정으로 데이터 손실 방지
- 스냅샷 라이프사이클 관리 자동화
- 스토리지 성능 모니터링 및 필요에 따른 조정
- 암호화 옵션 활성화로 저장 데이터 보호
- WaitForFirstConsumer 볼륨 바인딩 모드 사용으로 최적의 노드 배치 보장